home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
BARNET
/
FREENET
/
DEVOS
/
FDSOURCE.ARC
/
h
/
driver
next >
Wrap
Text File
|
1996-01-30
|
4KB
|
88 lines
/* _____________________________________________
[> <]
Project [> ARCterm VII <]
Author [> Hugo Fiennes <]
Date started [> 05-March-1990 <]
[> <]
Module name [> Driver calls <]
Current version [> 00.04 <]
Version date [> 08-January-1993 <]
State [> Unfinished <]
[> <]
[> This source is COPYRIGHT © 1992/93 by <]
[> Hugo Fiennes of The Serial Port <]
[>_____________________________________________<]
*/
extern int (*driver)(int, ...);
#ifndef DRIVER_C
extern int (*driver_load(const char *name))(int, ...);
#endif
typedef struct driver_s
{
int entry[32];
char drv_info[32];
char man_info[32];
unsigned int v_minor :16, v_major :16;
unsigned int flags :24, ports :8;
int number;
int reserved[13];
int speedtable[32];
} driver_t;
extern driver_t *drv_info;
#define DRIVER_FLAGS_MULTI_PORT 0x00000001 /* More than one port availiable */
#define DRIVER_FLAGS_SPLIT_RATE 0x00000002 /* Supports split rates */
#define DRIVER_FLAGS_FIFO 0x00000004 /* Has >1 byte hardware FIFO */
#define DRIVER_FLAGS_BREAK 0x00000008 /* Can use Set control lines to generate a break */
#define DRIVER_FLAGS_POLL 0x00000010 /* Requires polling (by function 19) */
#define DRIVER_FLAGS_WONT_EMPTY 0x00000020 /* Won't empty (is a shared buffer) */
#define DRIVER_FLAGS_BLOCK 0x00000040 /* Supports block get/put operations */
#define DRIVER_FLAGS_NO_OVERLAP 0x00000080 /* Prefer not to overlap serial IO and disk IO */
#define DRIVER_FLAGS_INQUIRY 0x00000100 /* Supports inquiry initialise */
#define DRIVER_PUTBYTE 0
#define DRIVER_GETBYTE 1
#define DRIVER_PUTBLOCK 2
#define DRIVER_GETBLOCK 3
#define DRIVER_CHECKTX 4
#define DRIVER_CHECKRX 5
#define DRIVER_FLUSHTX 6
#define DRIVER_FLUSHRX 7
#define DRIVER_CONTROLLINES 8
#define DRIVER_MODEMCONTROL 9
#define DRIVER_RXERRORS 10
#define DRIVER_BREAK 11
#define DRIVER_EXAMINE 12
#define DRIVER_TXSPEED 13
#define DRIVER_RXSPEED 14
#define DRIVER_WORDFORMAT 15
#define DRIVER_FLOWCONTROL 16
#define DRIVER_INITIALISE 17
#define DRIVER_CLOSEDOWN 18
#define DRIVER_POLL 19
#define DRIVER_SELECT 20
#define driver_putbyte(p,c) ((*driver)(DRIVER_PUTBYTE,p,c))
#define driver_getbyte(p) ((*driver)(DRIVER_GETBYTE,p))
#define driver_putblock(p,b,n) ((*driver)(DRIVER_PUTBLOCK,p,b,n))
#define driver_getblock(p) ((*driver)(DRIVER_GETBLOCK,p,b,n))
#define driver_checktx(p) ((*driver)(DRIVER_CHECKTX,p))
#define driver_checkrx(p) ((*driver)(DRIVER_CHECKRX,p))
#define driver_flushtx(p) ((*driver)(DRIVER_FLUSHTX,p))
#define driver_flushrx(p) ((*driver)(DRIVER_FLUSHRX,p))
#define driver_controllines(p,s)((*driver)(DRIVER_CONTROLLINES,p,s))
#define driver_modemcontrol(p) ((*driver)(DRIVER_MODEMCONTROL,p))
#define driver_rxerrors(p) ((*driver)(DRIVER_RXERRORS,p))
#define driver_break(p,cs) ((*driver)(DRIVER_BREAK,p,cs))
#define driver_examine(p) ((*driver)(DRIVER_EXAMINE,p))
#define driver_txspeed(p,tx) ((*driver)(DRIVER_TXSPEED,p,tx))
#define driver_rxspeed(p,rx) ((*driver)(DRIVER_RXSPEED,p,rx))
#define driver_wordformat(p,w) ((*driver)(DRIVER_WORDFORMAT,p,w))
#define driver_flowcontrol(p,f) ((*driver)(DRIVER_FLOWCONTROL,p,f))
#define driver_initialise(p) ((char *)(*driver)(DRIVER_INITIALISE,p))
#define driver_closedown(p) ((*driver)(DRIVER_CLOSEDOWN,p))
#define driver_poll(p) ((*driver)(DRIVER_POLL,p))
#define driver_select(p)